package org.example.config;

import com.alibaba.fastjson.JSON;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.tea.TeaException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Slf4j
@Component
public class SmsConfig {


    @Value("${aliyun.sms.accessKeyId}")
     String accessKeyId ;

    @Value("${aliyun.sms.accessKeySecret}")
     String accessKeySecret ;




        /**
         * <b>description</b> :
         * <p>使用AK&amp;SK初始化账号Client</p>
         * @return Client
         *
         * @throws Exception
         */
        public static com.aliyun.dysmsapi20170525.Client createClient() throws Exception {
            //log.info("accessKeyId:{}",accessKeyId);
            //log.info("accessKeySecret:{}",accessKeySecret);
            // 工程代码泄露可能会导致 AccessKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考。
            // 建议使用更安全的 STS 方式，更多鉴权访问方式请参见：https://help.aliyun.com/document_detail/378657.html。
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // 必填，请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                    .setAccessKeyId("LTAI5t8rGdj4fDnUYuYJvcsg")
                    // 必填，请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                    .setAccessKeySecret("P6T6XhyhdFIs0jRNDxDWWDfnWGo6Bw");
            // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
            config.endpoint = "dysmsapi.aliyuncs.com";
            return new com.aliyun.dysmsapi20170525.Client(config);
        }

        public static void sendSms(String phone,String code) throws Exception {

                    com.aliyun.dysmsapi20170525.Client client = SmsConfig.createClient();
            Map <String,String> codeMap = new HashMap<String,String>();
            codeMap.put("code",code);
            String codeStr = JSON.toJSONString(codeMap);

            com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
                    .setSignName("陪诊陪护")
                    .setTemplateCode("SMS_475745722")
                    .setPhoneNumbers(phone)
                    .setTemplateParam(codeStr);

            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                // 复制代码运行请自行打印 API 的返回值
                SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
          log.info("sendSmsResponse:{}",sendSmsResponse.toString());
            } catch (TeaException error) {
                // 此处仅做打印展示，请谨慎对待异常处理，在工程项目中切勿直接忽略异常。
                // 错误 message
                System.out.println(error.getMessage());
                // 诊断地址
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // 此处仅做打印展示，请谨慎对待异常处理，在工程项目中切勿直接忽略异常。
                // 错误 message
                System.out.println(error.getMessage());
                // 诊断地址
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }

        }

    }

